#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2016-11-22 10:37:47
# @Author  : Your Name (you@example.org)
# @Link    : http://example.org
# @Version : $Id$

import os
basedir = os.path.abspath(os.path.dirname(__file__))

class Config:
    SECRET_KEY = os.environ.get('SECRET_KEY') or 'this is a complicated string'

    SQLALCHEMY_COMMIT_ON_TEARDOWN = True

    # MAIL_SUBJECT_PREFIX = '[SSH]'
    # MAIL_SENDER = 'osadmin <osadmin@suishouji.com>'
    # MAIL_ADMIN = os.environ.get('FLASKY_ADMIN')

    #配置类可以定义 init_app() 类方法，其参数是程序实例。
    #在这个方法中，可以执行对当前环境的配置初始化。
    #现在，基类 Config 中的 init_app() 方法为空。
    @staticmethod
    def init_app(app):
        pass

class DevelopmentConfig(Config):
    DEBUG = True
    # MAIL_SERVER = 'mail.suishouji.com'
    # MAIL_PORT = 587
    # MAIL_USE_TLS = True
    # MAIL_USERNAME = os.environ.get('MAIL_USERNAME')
    # MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD')
    SQLALCHEMY_DATABASE_URI = os.environ.get('DEV_DATABASE_URL') or 'sqlite:///' + os.path.join(basedir, 'data.sqlite')

class TestingConfig(Config):
    TESTING = True
    SQLALCHEMY_DATABASE_URI = os.environ.get('TEST_DATABASE_URL') or 'sqlite:///' + os.path.join(basedir, 'data.sqlite')

class ProductionConfig(Config):
    SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or 'sqlite:///' + os.path.join(basedir, 'data.sqlite')

config = {
    'development': DevelopmentConfig,
    'testing': TestingConfig,
    'production': ProductionConfig,
    'default': DevelopmentConfig
}